# -*- coding: UTF-8 -*-
# Identado mediante TABS 4 espacios

from django.db import models

class Tratamiento(models.Model):
	"Define el tratamiento que se le dará al socio. Por ejemplo Sr, Srta, Dr.etc."
	nombre = models.CharField(maxlength=5)
	
	def __str__(self):
		return self.nombre
	
	class Admin:
		pass
	
class TipoSocio(models.Model):
	"Define el tipo de socio"
	nombre = models.CharField(maxlength=50)
	descripcion = models.CharField(maxlength=200, blank=True, null=True)
	exento_cuotas = models.BooleanField("Exento de cuotas", default=False, help_text="este tipo de socio está exento del pago de cuotas")
	class Admin:
		list_display =("nombre", "descripcion", "exento_cuotas")
		list_filter =('exento_cuotas',)
		search_fields =('nombre',)
	class Meta:
		verbose_name="Tipo de socio"
		verbose_name_plural="Tipos de socios"
		
	def __str__(self):
		return self.nombre


class TipoAportacion(models.Model):
	"Tipos de aportación que se pueden hacer a la sociedad"
	nombre = models.CharField(maxlength=50, help_text="nombre de la aportación")
	extension = models.IntegerField(help_text="extensión por defecto en meses que implica la aportación")
	cuota = models.FloatField(max_digits=5, decimal_places=2, help_text="importe por defecto de la aportación")
	class Admin:
		list_display = ("nombre", "extension", "cuota")
		list_filter =('extension',)
		search_fields = ('nombre',)
	class Meta:
		verbose_name="Tipo de aportación"
		verbose_name_plural="Tipos de aportaciones"
	def __str__(self):
			return self.nombre

	
# Clase que define los socios
class Socio(models.Model):
	"Socios"
	tratamiento = models.ForeignKey(Tratamiento)
	nombre = models.CharField(maxlength=50, help_text="nombre(s) del socio")
	apellidos = models.CharField(maxlength=60, help_text="apellidos del socio")
	nick = models.CharField(maxlength=20, help_text="alias del socio si lo tiene", null=True, blank=True)
	email = models.EmailField("e-mail")
	email_alt = models.EmailField("e-mail alternativo", null=True, blank=True, help_text="por ejemplo redirecció de correo")
	alta = models.DateField("fecha de alta")
	observaciones = models.TextField(null=True, blank=True)
	fecha_nacimiento = models.DateField("fecha nacimiento", null=True, blank=True)
	profesion = models.CharField("profesión", maxlength=60)
	activo = models.BooleanField(default=True)
	tipo = models.ForeignKey(TipoSocio)
	calle = models.CharField(maxlength=100, null=True, blank=True)
	codigo_postal = models.CharField("código postal", maxlength=10, null=True, blank=True)
	ciudad = models.CharField(maxlength=60, null=True, blank=True)
	pais=models.CharField("país", maxlength=60, null=True, blank=True)
	foto = models.ImageField(null=True, blank=True, upload_to='fotos')
	modificado = models.DateTimeField(auto_now=True )
	class Admin:
		list_display =('nombre','apellidos','nick', 'email','tipo','activo', 'modificado')
	def __str__(self):
		return "%s, %s" % (self.apellidos, self.nombre)


CHOICE_CONTACTO = (
	('TC','TELEFONO DE CASA'),
	('TO','TELEFONO OFICINA'),
	('MBL', 'MOBIL'),
)

class Contacto (models.Model):
	"Teléfono de contacto, fax, móbil, etc"
	socio = models.ForeignKey(Socio)
	tipo =  models.CharField(maxlength=3, choices=CHOICE_CONTACTO)
	numero = models.CharField(maxlength=60, null=True, blank=True)
	class Admin:
		pass

class Aportacion(models.Model):
	"Aportaciones realizadas por los socios"
	socio = models.ForeignKey(Socio)
	fecha_aportacion = models.DateField()
	tipo_aportacion = models.ForeignKey(TipoAportacion)
	importe = models.FloatField(max_digits=5, decimal_places=2)
	modificado = models.DateTimeField(auto_now=True)
	observaciones = models.CharField(maxlength=200)
	class Admin:
		pass
	class Meta:
		verbose_name_plural="Aportaciones"

